#include <stdio.h> int fseek (stream, offset, origin); FILE *stream; указатель на структуру FILE. long offset; число байтов от origin. int origin; начальная позиция.
Описание:
Функция fseek перемещает указатель, соответствующий потоку stream , на новое место расположения, отстоящее от origin на offset байтов. Следующая операция в потоке выполняется над новым месторасположением.
Если поток открыт для обновления, то следующей операцией будет либо чтение, либо запись.
Аргумент origin может быть одной из следующих констант, определенных в <stdio.h>.
ORIGIN ОПРЕДЕЛЕНИЕ (источник, начало) SEEK-SET начало файла. SEEK-CUR текущая позиция указателя на файл. SEEK-END конец файла.
Функция fseek используется для перемещения указателя в любое место файла. Указатель может быть также размещен за концом файла. Однако, попытка расположить указатель до начала файла приведет к ошибке.
Возвращаемое значение:
Функция fseek возвращает значение 0, если указатель успешно перемещен. В случае ошибки возвращается любое ненулевое значение. Для устройств, не совместимых с операцией seek, (таких как терминал и печать), возвращаемое значение неопределенно.
Замечание!
Для потоков, открытых в текстовом (преобразующем) режиме, применение fseek является ограниченным, т.к. комбинации ВК - ПС могут стать причиной выработки непредвиденного результата.
Ниже приведены операции (действия) fseek , гарантирующие работу с потоками, открытыми в текстовом режиме:
- смещение origin на величину offset , равную нулю;
- смещение от начала файла на значение offset , полученное после вызова функции ftell.
Пример.
#include <stdio.h> FILE *stream; int result; stream = fopen("data", "r"); . . . /* следущий оператор возвращает указатель на файл к началу файла */ result = fseek(stream, 0L, SEEK_SET);